package co.edu.uniandes.truequeAndes.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import co.edu.uniandes.truequeAndes.dao.ConsultaDAO;
import co.edu.uniandes.truequeAndes.fachada.TruequeAndes;
import co.edu.uniandes.truequeAndes.vos.Cliente;
import co.edu.uniandes.truequeAndes.vos.Productoalterar;

public class ServletRF15Final extends ServletTemplate{

	@Override
	public String darImagenTitulo(HttpServletRequest request) {
		
		return "uniandes.png";
	}

	@Override
	public String darTituloPagina(HttpServletRequest request) {
		String Categoria=request.getParameter("categorias");
		String valor=request.getParameter("valorEstimado");
		String valor2=request.getParameter("valorComercial");
		if(Categoria==null||Categoria.equals("")||valor.equals("")||valor==null||valor2==null||valor2.equals(""))
			return "error";
		try {
			Double.parseDouble(valor);
			Double.parseDouble(valor2);
			return "exito";
		} catch (Exception e) {
			return "fallo";
		}
		
	}

	@Override
	public void escribirContenido(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		long numeroiini=System.nanoTime();
	PrintWriter escritor=response.getWriter();
	TruequeAndes t= TruequeAndes.darInstancia();
	ConsultaDAO dao= t.dao;
	dao.inicializar();
	//repersistencia del usuario y 
	Cliente reguardar=(Cliente)request.getSession().getAttribute("cliente");
	request.getSession().setAttribute("cliente", reguardar);
	//si es error, es que faltan datos, imprimir el mensaje al usuario que es fail
	if(darTituloPagina(request).equals("error"))
	{
		escritor.print("<form method=\"POST\" action=\"ServletLogin.htm\">\n");
		escritor.print("<table width=\"720\" align=\"center\">\n");
		escritor.print("<tr>\n");
		escritor.print("<td align=\"center\">Por favor, llene por ahora todos los campos</td>\n");
		escritor.print("</tr>\n");
		escritor.print("<tr>\n");
		escritor.print("<td align=\"center\"><input type=\"submit\" name=\"regresar\" value=\"Regresar\"></td>\n");
		escritor.print("</tr>\n");
		escritor.print("</table></form>\n");
		long numerofini=System.nanoTime();
    	numerofini=numerofini-numeroiini;
    	
    	escritor.println("<table width=\"100\" align=\"center\">");
    	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
	}
	
	//SI FALLO ES PORQUE LOS DATOS SON INVALIDOS, IMPRIMIR ESTO Y DECIRLE KE IMPRIMA BIEN
	else if(darTituloPagina(request).equals("fallo"))
	{
		ArrayList categorias=(ArrayList)dao.buscarCategorias();
		Productoalterar p2=(Productoalterar)request.getSession().getAttribute("productoalterar");
		
		escritor.println("<form method=\"POST\" action=\"ServletRF15Final.htm\"><table width=\"720\" align=\"center\">");
		escritor.println("<tr><td align=\"center\" width=\"720\">Los valores ingresados no corresponden a numeros,\n por favor intentelo de nuevo</td></tr></table>");
		escritor.println("<table width=\"720\" align=\"center\"><tr><td align=\"right\" width=\"360\"> Categoria : </td>");
		for (int i = 0; i < categorias.size(); i++)
		{
			
			Cliente obtencion=(Cliente)categorias.get(i);
			escritor.println("<td align=\"left\" width=\"360\"><input type=\"radio\" value=\"" + obtencion + "\" name=\"categoria\"/>" +obtencion +"</td>");
			escritor.println("</tr>");
			escritor.println("<tr>");
			escritor.println("<td width=\360\"/>");
		}
		
		escritor.println("<td width=\"360\"/>");
		escritor.println("<tr>");
		escritor.println("<td align=\"right\" width=\"360\">Valor Estimado:</td>");
		escritor.println("<td align=\"left\" width=\"360\"><input type=\"text\" name=\"valorEstimado\"></td>");
		escritor.println("</tr>");
		escritor.println("<tr>");
		escritor.println("<td align=\"right\" width=\"360\">Valor Comercial:</td>");
		escritor.println("<td align=\"left\" width=\"360\"><input type=\"text\" name=\"valorComercial\"></td>");
		escritor.println("</tr>");
		escritor.println("</table></form>");
		long numerofini=System.nanoTime();
    	numerofini=numerofini-numeroiini;
    	
    	escritor.println("<table width=\"100\" align=\"center\">");
    	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
			
	}
	
	//el caso de que realizo bien el update
	else
	{
		
		
		
		Productoalterar alterar=(Productoalterar)request.getSession().getAttribute("productoalterar");
		String algo=request.getParameter("categoria");
		int tempo=0;
		if(algo.equals("Video Juegos"))
			tempo=1;
		if(algo.equals("Arte"))
			tempo=2;
		if(algo.equals("Audio/Video"))
			tempo=3;
		dao.requerimiento15(request.getParameter("categoria"), Double.parseDouble(request.getParameter("valorEstimado")), Double.parseDouble(request.getParameter("valorComercial")), alterar.darId());
		
		escritor.print("<form method=\"POST\" action=\"ServletLogin.htm\">\n");
		escritor.print("<table width=\"720\" align=\"center\">\n");
		escritor.print("<tr>\n");
		escritor.print("<td align=\"center\">Exitos</td>\n");
		escritor.print("</tr>\n");
		escritor.print("<tr>\n");
		escritor.print("<td align=\"center\"><input type=\"submit\" name=\"regresar\" value=\"Regresar\"></td>\n");
		escritor.print("</tr>\n");
		escritor.print("</table></form>\n");
		long numerofini=System.nanoTime();
    	numerofini=numerofini-numeroiini;
    	
    	escritor.println("<table width=\"100\" align=\"center\">");
    	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
		
		
		
	}
		
	}

}
